# coding=utf-8
import unittest
from Public import HTMLTestRunner
import time
import os
import sys
#语法：os.path.split('PATH'),以 "PATH" 中最后一个 '/' 作为分隔符，分隔后，将索引为0的视为目录（路径），将索引为1的视为文件名
#os.path.split()返回文件的路径和文件名
dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))  # sys.argv[0]表示代码本身文件路径
# 组合case文件路径
case_path = ".\\TestCase"
# 组合报告路径
result = dirname + "\\Result\\"


def Creatsuite():
    # 定义单元测试容器
    testunit = unittest.TestSuite()

    # 定搜索用例文件的方法
    discover = unittest.defaultTestLoader.discover(case_path, pattern='Test_*.py', top_level_dir=None)

    # 将测试用例加入测试容器中
    for test_suite in discover:
        for casename in test_suite:
            testunit.addTest(casename)
        # print testunit
    return testunit


test_case = Creatsuite()

# 获取系统当前时间
now = time.strftime('%Y-%m-%d-%H_%M_%S', time.localtime(time.time()))
day = time.strftime('%Y-%m-%d', time.localtime(time.time()))

# 定义个报告存放路径，支持相对路径
tdresult = result + day

if os.path.exists(tdresult):
    filename = tdresult + "\\" + now + "_result.html"
    fp = open(filename, 'wb')
    # 定义测试报告
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'Appium测试报告', description=u'用例详情：')

    # 运行测试用例
    runner.run(test_case)
    fp.close()  # 关闭报告文件
else:
    os.mkdir(tdresult)
    filename = tdresult + "\\" + now + "_result.html"
    fp = open(filename, 'wb')
    # 定义测试报告
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'Appium测试报告', description=u'用例详情：')

    # 运行测试用例
    runner.run(test_case)
    fp.close()  # 关闭报告文件
